package com.jfm.jfmm.collector.entity.collect;

import lombok.Data;

import java.util.concurrent.TimeUnit;

/**
 * @author DYang
 * @since 2024-10-13 11:33
 */
@Data
public class Param {

    /**
     *  采集任务名称
     */
    private String deviceCode;
    /**
     *  批次id
     */
    private String metricId;
    /**
     * 采集项名称
     */
    private String metricName;
    /**
     * 采集项代码
     */
    private String metricCode;
    /**
     * 采集频率
     */
    private int frequency;
    /**
     * 采集时间单位
     */
    private String timeUnit;
    /**
     * 单位
     */
    private String unit;
    /**
     * 数据类型
     */
    private String dataType;
    /**
     * 重试次数
     */
    private int retry;
    /**
     * 超时时间(ms)
     */
    private Long timeout = 3000L;
    /**
     * 是否启用
     */
    private boolean enabled = true;
    /**
     * 采集方式：COLLECT 主动采集
     *         CALCULATE 计算获取值
     */
    private String collectType;
    /**
     * JS 函数
     */
    private String jsFunc;
    /**
     * 依赖项
     */
    private String[] depends;

    /**
     * 依赖项id
     */
    private String[] dependIds;


    public static TimeUnit transformTimeUnit(String timeUnit) {
        if (timeUnit == null) return TimeUnit.SECONDS;
        return switch (timeUnit){
            case "m" -> TimeUnit.MINUTES;
            case "h" -> TimeUnit.HOURS;
            case "d" -> TimeUnit.DAYS;
            default -> TimeUnit.SECONDS;
        };
    }

}
